Menus are commonly employed to control software programs and selectively access data. The data or information accessed using a menu can be presented in many forms, including, for example, a text list of items, a still frame image, play of an audio file, display of an animation, a video presentation, or a combination or sequence of such presentations. Providing user-friendly menus for accessing a variety of different types of information in a large database can represent a challenge. In the past, it has been necessary to create and store each menu that may be required. The memory resources needed to store large numbers of menus is significant, as is the programming effort required to generate the menus, particularly if they are complex.
It would clearly be preferable to provide a software tool that enables a designer to easily create menus, using efficient code, while retaining significant versatility in determining the content of the menus. Rather than requiring that each menu be separately created and then stored for subsequent use, it would also be preferable to store instructions that can be executed to recreate a specific menu when the menu is needed. To reduce the computer memory resources required, a menu template should be employed to interpret the stored menu instructions when automatically recreating a menu. The prior art does not teach or suggest a menu creation system employing a menu template and a set of stored attributes or instructions that define each menu so a menu that was previously created can be recreated when needed.
A further limitation of most menu systems is that they do not enable data to be easily accessed according to the personal needs of a user. For example, when browsing the Internet, people routinely visit the same sequence of web sites. It would be desirable to provide a user-modifiable menu interface that enables the user to customize and store a sequence of actions or events, so that the sequence can easily be accessed and repeated simply by selecting items from a menu. It would also be desirable to enable the user to bypass one or more of these actions, because of user familiarity or disinterest with the data that would otherwise be presented, or due to a preference to review a plurality of menus more quickly than would be achievable if presentation of all data were compulsory.
The ability to create menus to access such customized sequences would be useful in retrieving information from databases as well. While some databases are static, many are dynamic and include information that is frequently updated. For example, a warehouse inventory database employed by a distribution company might be updated on a daily basis to reflect the actual contents of the warehouse. A salesman for specific product lines marketed by the distribution company is likely to need access to the inventory data to determine the availability and cost information for those product lines on a regular basis. The salesman will find it useful to be able to regularly perform the same type of database search for information related to each product line handled by the salesman. By enabling such database queries to be remembered, the time required to search a database for the information required can be substantially reduced.
Enabling a user to create, define, and customize a menu to access sequential data is also important for creating automated protocols and questionnaires. In this case, a sequence of menu-like displays that include a plurality of user-selectable options can be provided, and the options selected by a user recorded. To provide this function, it is important that a menu system be dynamic, so that menus are not displayed to a user when the user's prior responses indicate that a previously defined parameter is irrelevant to the user's current circumstances. Thus, the sequence of questions or protocol displays presented should be automatically modified according to the choices made by the user. It would therefore be desirable to provide a menu system that links menus in sequences, which vary with a user's selection of menu items.
The optimal presentation of a sequence of menus or of a sequence of events in response to a user action also depends on being able to control the timing of the presentation of the menus or events. For example, a teacher may want to restrict the time available to students for answering each element of an exam so that each student is similarly tested. This type of exam requires that the sequential display of each question and the associated student selectable answers be automated according to the dictates of a timer. It would therefore be desirable to include a timing function in the display of menu items. Other applications of such a timing function will be evident. For example, the automated display of a sequence of web pages, much like an automated slide show, would enable a user to view the successive pages, pause the automation at any time to more fully consider information on a specific web page, and choose the next sequence of web pages that will be visited. It would be desirable to provide a menu system that, when used in conjunction with a computing device such as a desktop computer, portable computer, or a hand-held computing device, will enable a user to create (and/or view) an automated sequential display of items included on selected menus in any desired order and according to any desired timing intervals, without requiring the user to write program code.
When navigating through most prior art menus employed in information management systems, a mouse or other pointing device, or cursor button and a select button are typically employed to make selection of menu items. When using cursor buttons, one of the menu items on the display is usually highlighted. A user typically must press the cursor buttons several times to move to and highlight a desired item. Then, the user must press a select button (e.g., the Enter key) to indicate to the system that the highlighted item has been selected. A major drawback of this technique is the inconvenience engendered by requiring the user to press a button multiple times. A mouse or other pointing device might appear to be more convenient; yet, using a mouse requires some degree of skill and precision and can be tedious when an item being selected is accessed on successive displays, so that continuous repositioning of the cursor is required. This problem becomes an issue when the user wants to quickly view a series of displays, but must move the mouse cursor a substantial distance over each display to select and actuate a control to cause the next display to be viewed. Of greater concern, manipulating a mouse generally requires the user's hand be removed from the keyboard. The continuing movement of the user's hand between the mouse and the keyboard quickly becomes inefficient and tiring.
Touch sensitive monitors and voice recognition systems provide alternatives to the mouse and cursor button systems described above in selecting menu items. However, touch sensitive monitors are relatively costly, and require frequent cleaning to remove fingerprints and body oils, and also require a user to remove a hand from the keyboard to make a selection by touching the screen. While voice recognition technology is gradually becoming more accurate, it is not yet a mature or widely adopted technology. To minimize errors, the user must “train” the software and speak clearly and at a level well above the ambient noise. While voice recognition technology frees the user's hands from the need to touch the keyboard, using voice recognition technology reduces privacy, cannot be used in noisy environments, and the data input often requires correction. Therefore, it would be desirable to provide a menu-based system that enables a user to rapidly select menu items or data objects with a greater ease and accuracy than can be achieved by using a mouse, using a cursor button system, using a touch screen, or using voice recognition technology.
Preferably, a menu system should be an input device, such as a keyboard. A computer keyboard is the most common input device and is thus an ideal device for selecting data objects or menu items. The numeric keypad portion of a keyboard (keys 0–9, “Num Lock”, “/”, “*”, “−”, “+”, and “Enter”) has particular advantages as an electronic input device for entering selections. Some form of numeric keypad is almost universally included on all computer keyboards, as well as on mobile devices such as portable phones. The numeric keypad is designed for rapid entry of digits, and as such, can be used for the rapid selection of menu options. It would therefore also be desirable to provide a menu system that incorporates a menu template for generating and displaying any required menu items in the format of the keys on a numeric keypad so that each item on a menu has a one-to-one relationship with a corresponding key on the numeric keypad, thus enabling a user to rapidly select menu items without removing a hand from the keyboard. From the preceding discussion, it will be apparent that a menu system tool adapted for use with a database should enable menu items to be selected with a numeric keypad. In addition, the menu system tool should include a menu template that enables menus to be defined and recreated when needed, to reduce the amount of system memory required to store different menus. The menu system tool should enable a user to create a variety of different menus without writing code, and should optionally include a timing function for increased versatility. The prior art does not teach or suggest such a menu system tool.